1. 引言

六只脚是国内著名的户外网站,拥有大量的户外GPS轨迹路线,网址为:http://www.foooooot.com/ 图片.png

2. 数据分析

2.1 获取所有轨迹

搜索关键词岳麓山

图片.png

可以发现,每页具有三十个轨迹记录

观察第二页的网址我们可以发现网址为:http://www.foooooot.com/search/trip/all/1/all/time/descent/?page=2&keyword=%E5%B2%B3%E9%BA%93%E5%B1%B1 不难发现其规律:

我们不妨测试page为50的情况,在浏览器输入http://www.foooooot.com/search/trip/all/1/all/time/descent/?page=50&keyword=%E5%B2%B3%E9%BA%93%E5%B1%B1

图片.png

小结:我们可以通过不断增加page的数字,直至某一页不满足三十个轨迹记录,获取该关键词所有的轨迹记录

2.2 获取轨迹ID

点击某个具体的轨迹详情:

图片.png

可以看到每一页具体的轨迹页面的网址是由轨迹ID构造的,诸如:http://www.foooooot.com/trip/1448263/

从刚才的列表界面我们就可以找到每个轨迹ID:

图片.png

2.3 获取轨迹数据

我们打开浏览器控制台(按F12),点击到网络记录界面,刷新网址:

图片.png

从网络请求记录中我们发现有两个XHR异步请求其名字很像轨迹数据,点开查看:

图片.png

可以看到,这个trackjson就是轨迹的JSON数据:

图片.png

这个footprintsjson就是足迹数据,也就是拍照的那种数据:

图片.png

2.4 字段解释

对于trackjson,前三列个数据项可以快速判断为时间戳和经纬度,对于后面三个数据项,结合网页数据:

图片.png

可以判断分别为高程,速度和里程

对于footprintsjson,可以判断前几列数据项分别为时间戳、经纬度、高程、名字、缩略图、详情图,后面几项笔者认为没啥作用

图片.png

3. 数据爬取

经过上面的数据分析,爬取轨迹数据主要就是通过page和keyword构造网址获取轨迹ID,通过轨迹ID构造地址获取trackjson和footprintsjson

笔者此处基于Python,使用requests库发送http请求,使用Xpath解析界面提取数据

3.1 引入库

3.2 获取所有轨迹ID

可以看到有1170条轨迹数据

3.3 获取轨迹数据

4. 可视化

在QGIS中利用加载XY文件的方式加载all.csv文件,并设置OSM底图,预览GPS轨迹:

图片.png